package main

import "fmt"

////变量
//var x = 100
//var y = "小王子"
//
//// 变量:只声明不使用会报错
//func main(){
//    //标准声明格式
//	var name string
//	var age int
//	var isOk bool
//	fmt.Println(name, age, isOk)
//	//批量声明变量
//	var (
//		a string
//		b int
//		c bool
//		d float32
//	)
//	fmt.Println(a, b, c, d)
//	//声明变量同时指定初始值
//	var name1 string = "小王子"
//	var age1 int = 18
//	var name2, age2 = "沙河娜扎", 28
//	fmt.Println(name1, age1, name2, age2)
//	//类型推导: 让编译器根据变量的初始值推导出其类型
//	var name3 = "小王子"
//	var age3 = 18
//	fmt.Println(name3, age3)
//	//短变量声明: 只能在函数中使用，而var声明的可以在全局使用
//	m := 10
//	fmt.Println(m)
//    //匿名变量：
//}



// 常量

//const pi = 3.1415
//const e = 2.7

//const (
//	pi = 3.1415
//	e = 2.7
//)

//const (
//	n1 = 10
//	n2 = 20
//	n3 = 30
//)
//
//const (
//	n4 = 100
//	n5
//	n6
//)

//const (
//	n1 = iota//0
//	n2 // 1
//	_//n3 // 2
//	n4 // 3
//)

const (//插队
	n1 = iota//0
	n2 = iota//1
	n3 = 100//100
	n4 = iota//3
)

//定义数量级 （这里的<<表示左移操作，1<<10表示将1的二进制表示向左移10位，也就是由1变成了10000000000，也就是十进制的1024。
//同理2<<2表示将2的二进制表示向左移2位，也就是由10变成了1000，也就是十进制的8。）
const (
	_  = iota
	KB = 1 << (10 * iota)//1<<10
	MB = 1 << (10 * iota)//1<<20
	GB = 1 << (10 * iota)
	TB = 1 << (10 * iota)
	PB = 1 << (10 * iota)
)

const (
	a, b = iota+1, iota+2//iota = 0  a=1,b=2
	c, d                 //iota = 1  c=2,d=3
	e, f                 //iota = 2  e=3,f=4
)
func main(){
    //fmt.Println(n1, n2, n4)//0 1 3
	//fmt.Println(n4, n5, n6)
	fmt.Println(n1, n2, n3, n4)
}

